package coreUtils

import (
	"regexp"
	"strings"
)

// GetSimpleArea 获取地区简写
func GetSimpleArea(val string) string {
	if val == "" {
		return val
	}

	replacements := map[string]string{
		"新疆维吾尔自治区":      "新疆",
		"新疆维吾尔":         "新疆",
		"和田地区":          "和田",
		"广西壮族自治区":       "广西",
		"广西壮族":          "广西",
		"宁夏回族自治区":       "宁夏",
		"内蒙古自治区":        "内蒙古",
		"西藏自治区":         "西藏",
		"临夏回族自治州":       "临夏",
		"仲恺、陈江区及各镇":     "仲恺区",
		"仲恺高新区":         "仲恺区",
		"伊犁哈萨克自治州":      "伊犁",
		"凉山彝族自治州":       "凉山",
		"十堰丹江口":         "十堰",
		"博尔塔拉蒙古自治州":     "博尔塔拉",
		"吐鲁番地区":         "吐鲁番",
		"喀什地区":          "喀什",
		"哈密地区":          "哈密",
		"大兴安岭地区":        "大兴安岭",
		"大理白族自治州":       "大理",
		"巴音郭楞蒙古自治州":     "巴音郭楞蒙",
		"巴音郭楞蒙":         "巴音郭楞",
		"庆阳定西地区":        "庆阳",
		"延边朝鲜族自治州延吉":    "延边",
		"延边朝鲜族自治州":      "延边",
		"德宏傣族景颇族自治州":    "德宏",
		"恩施土家族苗族自治州":    "恩施",
		"文山壮族苗族自治州":     "文山",
		"日喀则地区":         "日喀则",
		"昌吉回族自治州":       "昌吉",
		"果洛藏族自治州":       "果洛",
		"楚雄彝族自治州":       "楚雄",
		"江汉（天门/仙桃/潜江）":  "江汉",
		"江汉油田":          "江汉",
		"海东地区":          "海东",
		"海西蒙古族藏族自治州":    "海西",
		"海西蒙古族藏族自治州德令哈": "海西",
		"湘西土家族苗族自治州":    "湘西",
		"甘南藏族自治州":       "甘南",
		"红河哈尼族彝族自治州":    "红河",
		"西双版纳傣族自治州":     "西双版纳",
		"迪庆藏族自治州":       "迪庆",
		"酒泉敦煌":          "酒泉",
		"锡林郭勒盟":         "锡林郭勒",
		"阿克苏地区":         "阿克苏",
		"阿坝藏族羌族自治州":     "阿坝",
		"阿拉善盟":          "阿拉善",
		"香港特别行政区":       "香港",
		"黔东南苗族侗族自治州":    "黔东南",
		"黔东南苗族侗族自治州凯里":  "黔东南",
		"黔东南凯里":         "黔东南",
		"黔南布依族苗族自治州":    "黔南",
		"黔西南布依族苗族自治州":   "黔西南",
		"兴安盟":           "兴安",
		"海北藏族自治州":       "海北",
		"甘孜藏族自治州":       "甘孜",
		"神农架林区":         "神农架",
		"黄南藏族自治州":       "黄南",
		"怒江傈僳族自治州":      "怒江",
		"昌都地区":          "昌都",
		"吕梁文化站":         "吕梁",
		"塔城地区":          "塔城",
		"保定涿州":          "保定",
		"保定定州":          "保定",
		"海西德令哈":         "海西",
		"山南地区":          "山南",
		"阿勒泰地区":         "阿勒泰",
		"林芝地区":          "林芝",
	}

	// Perform all the replacements
	for old, new := range replacements {
		val = strings.ReplaceAll(val, old, new)
	}

	// Handle the regex replacement for "深圳"
	re := regexp.MustCompile(`.*深圳.*`)
	val = re.ReplaceAllString(val, "深圳")

	// Remove certain suffixes
	suffixes := []string{"省", "市", "自治区", "地区", "自治州", "区划", "独立区"}
	for _, suffix := range suffixes {
		val = strings.ReplaceAll(val, suffix, "")
	}

	return val
}
